最常用的查找文件的命令find
,但find
是读盘搜索,效率较低。本文介绍locate
,可以快速读取mlocate
数据库文件,速度非常快。Windows的类似软件是Everything
。
updatedb
在大多数发行版,如CentOS系统,updatedb
每天执行一次,是一个cron
的定时任务,即,每天不定时的更新,具体文件是如下。1
2
3
4
5
6
7
8$ sudo cat /etc/cron.daily/mlocate
nodevs=$(awk '$1 == "nodev" && $2 != "rootfs" && $2 != "zfs" { print $2 }' < /proc/filesystems)
renice +19 -p $$ >/dev/null 2>&1
ionice -c2 -n7 -p $$ >/dev/null 2>&1
/usr/bin/updatedb -f "$nodevs"
当系统刚刚建立时,或者新增、删除文件时,mlocate
的数据库文件并不能同步更新,需要使用root
用户手动执行updatedb
命令进行更新。1
# updatedb
locate
当mlocate
文件建立是,则可以使用locate
命令查找文件。
常用参数
-b
:只匹配base name。-e
:只显示存在的文件。-i
:忽略大小写。-r
:正则表达式
肌肉训练
1) 查找包含passwd
的文件。1
$ locate passwd
2) 精确查找名叫passwd
的文件。1
$ locate -b '\passwd'
3) 查找以passwd
结尾的文件。1
$ locate '*passwd'
如果本文对你有所帮助,请小额赞助。
~~ EOF ~~